#########################编译器环境变量、编译控制参数、最终目标定义#######################
CC=gcc
CURDIR=.
CFLAGS=-g -Wall -DDEBUG
LDFLAGS=-lpthread
TARGET=daytimecli

#########################头文件包含路径定义#######################
INCDIR=$(CURDIR)/log \
	   $(CURDIR)/socket \
	   $(CURDIR)/include
	   
#########################源文件路径定义#######################	   
SRCDIR=$(CURDIR)/log \
	   $(CURDIR)/socket \
	   $(CURDIR)/client
	   
SRC=$(foreach n, $(SRCDIR), $(wildcard $(n)/*.c))
INC=$(foreach n, $(INCDIR), $(addprefix -I, $(n)))

target_objs=$(SRC:.c=.o)

all:$(TARGET)

$(TARGET): $(target_objs)
	$(CC) $(LDFLAGS) $(target_objs) -o $@

#########################模式规则定义#######################	
%.o: %.c
	$(CC) -c $(CFLAGS) $(INC) -lpthread $< -o $@

.PHONY:clean
clean:
	@find ./ -name *.o -exec rm -f {} \;
	@find ./ -name *.d -exec rm -f {} \;
	@find ./ -name *.d.* -exec rm -f {} \;